package encore.portal.url;

import java.util.Collection;
import java.util.Map;

import javax.portlet.PortletMode;
import javax.portlet.WindowState;
import javax.servlet.ServletContext;

import encore.portal.models.PageConfig;
import encore.portal.models.PortalURLParameter;

public interface PortalURL extends Cloneable {
    public void setRenderPath(String renderPath);
    
    public String getReanderPath();
    
    public void addParameter(PortalURLParameter parameter);
    
    public void addPublicRenderParametersNew(Map<String, String[]> parameters);
    
    public Collection<PortalURLParameter> getParameters();
    
    public void addPublicParameterCurrent(String name,String[] values);
    
    public Map<String , String[]> getPublicParameters();
    
    public Map<String, String[]> getNewPublicParameters();
    
    public Map<String, String[]> getPrivateRenderParameters();
    
    public void setActionWindow(String actionWindow);
    
    public String getActionWindow();
    
    public Map<String, PortletMode> getPortletModes();
    
    public PortletMode getPortletMode(String windowId);
    
    public void setPortletMode(String windowId,PortletMode protlaMode);
    
    public Map<String, WindowState> getWindowStates();
    
    public WindowState getWindowState(String windowId);
    
    public void setWindowState(String windowId,WindowState windowState);
    
    public void clearParameters(String windowId);
    
    public String toURL(boolean absolute);
    
    public String getServerURI();
    public String getServletPath();
    
    public PortalURL clone();
    
    public String getResourceWindow(String window);
    
    public void setResourceWindow(String window);
    
    public PageConfig getPageConfig(ServletContext servletContext);
    
    public void addPublicParameterActionResourceParameter(String parameterName,String value);
    
    public void setCacheability(String cacheLevel);
    
    public String getCacheability();
    
    public void setResourceID(String resourceId);
    
    public String getResourceID();
    
    public void merge(PortalURL url,String windowId);
    
    
	
}
